Originally, televisions possessed a simple user interface containing a channel selector, a volume control, and little else. Since the advent of videocassette recorders (VCRs), the user interface for controlling all the available options for displaying content on a television has increased in complexity.
Remote controls typically use infra-red (IR) signals to communicate with devices that they operate. Each IR signal may be described using an IR code. Remote controls that communicate with IR signals typically use an embedded microprocessor and an embedded non-volatile memory chip to store control tables that specify the IR signaling required for communication with the device that the remote control operates.
Remote controls are generally compatible only with a set of devices for which the remote control stores data in the control tables. In other words, a remote control for a TV of brand A will likely not work with a receiver of brand B. Sometimes, even among products of a specific brand, remote controls will not be compatible for a variety of reasons, including (a) different control methods, such as radio frequency (RF) and Infrared (IR), may be used, (b) different signaling protocols, such as variations on pulse width and pulse position, may be used, and (c) different button encodings may be used.
As many consumers wish to minimize the amount of remote controls needed to operate components in their entertainment center, universal remote controls have gained in popularity. A universal remote control is a remote control that will, within limitations, emulate a wide variety of other remote controls, allowing a user to replace a collection of remote controls with a single remote control. Universal remote controls are designed to generate a variety of signals to support the broadest range of devices.
There are several different varieties of universal remote controls. One type of universal remote control is a pre-programmed universal remote control. A pre-programmed universal remote control is configured to emulate a fixed number of remote controls. Each brand of device may assign a remote control with a particular code (referred to herein as a “mode code”) that describes how to specify any operation by that remote control. Thus, a particular mode code specifies a set of IR signals (or a set of IR codes) that the remote control supports. To use a pre-programmed universal remote control, a user must configure the pre-programmed universal remote control by indicating which remote control to emulate by entering in the specific mode code (which can be, for example, a four digit numeric code, e.g., “1234”) that is assigned to the particular remote control that the user wishes the pre-programmed universal remote control to emulate.
The user must determine which mode code that is supported by the pre-programmed universal remote control in a process that usually involves trial-and-error. The user enters in a set of numbers into the pre-programmed universal remote control to indicate a possible mode code, and thereafter, the user presses a button (e.g., power) to see if the mode code works, i.e., a mode code works if the pre-programmed universal remote control performs the desired action on the intended device using the set of IR codes associated with the mode code. If the selected mode code does not work, the user must try another mode code. This is a time consuming process that is subject to error and may be frustrating to the user.
Another type of remote control, referred to herein as a learning universal remote control, may be programmed to emulate another remote control, generally by programming one operation at a time. A learning universal remote control may capture and copy the IR codes produced by another remote control issuing a command. A user typically configures a learning universal remote control by (a) facing the learning universal remote control towards another remote control, (b) entering a sequence of buttons on the learning universal remote control to initiate the copying of a particular command, and (c) pressing a button on the other remote to generate an IR signal carrying the IR code which is captured by the learning universal remote control. The learning universal remote control can thereafter generate that IR code (or something similar) to perform the same operation on the same device as the other remote control. Undesirably, programming a learning universal remote control may be a complicated and time-consuming process.
An additional type of remote control, referred to herein as a programmable universal remote control, may be programmed via a computer link. A programmable universal remote control may connect to a computer through an interface, such as a USB port, to download information instructing the programmable universal remote control on how to emulate a particular remote control. Programming a programmable universal remote control undesirably requires an appropriate interface to connect with a computer configured to instruct the programmable universal remote control, which may not always be available. Further, users may find programming a programmable universal remote control to be a confusing, frustrating, and time-consuming process.
Consequently, a new approach for programming a universal remote control is needed that does not incur the disadvantages associated with the prior approaches. The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.